Info
Simplifica o desenvolvimento de software e a manutenção, providenciando os seguintes conceitos:
Que na programação orientada a objetos (POO) são equivalentes aos atributos e métodos.
São as características, definidas como variáveis do objeto.
São as ações, definidas como métodos* do objeto.
__
| Objeto | Atributos | Métodos |
|---|---|---|
| pessoa | nome, idade, genero | falar, andar |
| carro | matricula, marca | acelerar, travar, buzinar |
| cão | nome, raça | latir, correr |
__ <font color="#a5a5a5"><sup>*</sup> Em linguagem C são conhecidas como funções.</font>
Ou seja, são instâncias das classes.
Dois objetos diferentes da mesma classe, podem possuir valores diferentes para os seus atributos e consequentemente apresentar estados internos diferentes.
Para que um objeto seja de uma determinada classe, terá obrigatoriamente que respeitar as especificações da classe.
Pessoa__
Classe Pessoa |
Objeto Pessoa1 |
Objeto Pessoa2 |
|---|---|---|
Atributo nome |
Maria | João |
Atributo idade |
15 | 25 |
Atributo genero |
F | M |
__
Pessoa1 e Pessoa2 são instâncias da classe Pessoa porque respeitam as especificações desta classeCódigo exemplo da classe Pessoa
class Pessoa{
//Atributos
String nome;
int idade;
char genero;
}
Código exemplo dos métodos da classe Pessoa
class Pessoa{
//Métodos
void falar(){
System.out.println("Blá, blá, blá");
}
}
newA sua única função é criar uma instância da classe, um objeto.
Exemplo
class Pessoa{
//Construtores
public Pessoa(){ //Construtor default
}
public Pessoa(String nome, int idade, char genero){
this.nome = nome;
this.idade = idade;
this.genero = genero;
}
}
O Construtor tem o mesmo nome da sua classe
Exemplo de instâncias
class UsaPessoa(){
public stativ void main(String[] args){
//Duas instâncias da classe Pessoa.
Pessoa pessoa1 = new Pessoa("Maria", 15);
Pessoa pessoa2 = new Pessoa("Joao", 25);
}
}
Com o objetivo de controlar o tipo de acesso às classes, atributos e métodos.
public: as classes, atributos e métodos são visíveis a partir de qualquer classe.package: as classes, atributos e métodos são visíveis em classes do mesmo pacote da classe onde foram definidas, mas não nas suas subclasses.protected: as classes, atributos e métodos são visíveis na classe onde foram definidos e as suas subclasses, independentemente do pacote onde estas últimas se encontram.private: as classes, atributos e métodos são visíveis apenas dentro da mesma classe.Os getter e os setter são responsáveis por fornecer meios para aceder ao estado de um objeto, isto é, obter e modificar os valores dos atributos de um objeto.
Método que vai buscar o valor do atributo às nossas classes
getIdade()is.isIdade()Método que coloca valores dentro do atributo
setIdade(int idade);Possibilita a reutilização de código.
-> A classe carro é uma superclasse
-> carro possui os atributos e métodos comuns a todos os objetos carro
-> Cada uma das sub classes possuem atributos e métodos específicos de cada uma delas
Exemplo da superclasse carro
private String matricula;
private int velocidadeAtual;
public void ligar()
public void acelerar()
public void travar()
public void buzinar()
public void desligar()
Exemplo da subclasse citadino
public void ligarACManual()
Exemplo da subclass familiar
public void desligarAirbagPassageiro()
__
citadino, familiar, e SUV herdem as características da superclasse Carro é preciso usar a palavra reservada extends.public class UsaCitadino{
public static void main(String[] args){
Citadino citadino = new Citadino();
citadinoAcelerar();
}
}
Em Java é utilizado o método overloading e o método overriding para obter o polimorfismo.
Em Java, para obter abstração é necessário usar uma classe e interface abstratas.
final tipo IDENTIFICADOR = valor;
final double MIN_WIDTH = 100.0;
enquanto o programa Java é executado.
-> Local
-> Global
-> Estática
-> É declarada e usada dentro do método
-> Não pode ser definida como static
-> É declarada dentro da classe, fora dos métodos
-> Não pode ser definida como static
-> Não pode ser local
-> A alocação na memória acontece apenas uma vez, enquanto a classe é carregada em memória
| Data Type | Default Value | Default size | Value | Syntax |
|---|---|---|---|---|
| boolean | false | 1 bit | true, false | Boolean one = false |
| char | '\u0000' | 2 byte | 0 -> 65.535 | char letterA = 'A' |
| byte | 0 | 1 byt | -128 -> 127 | byte a = 10, byte b = -20 |
| short | 0 | 2 byte | -32.768 -> 32.7 | short s = 10000, short r = -5000 |
| int | 0 | 4 byte | -2.(...).648 -> 2.(...).64 | int a = 100000, int b = -200000 |
| long | 0L | 8 byte | -9.(...).808 -> 9.(...).807 | long a = 100000L, long b = -200000L |
| float | 0.0f | 4 byte | Ilimitado | float f1 = 234.5f |
| double | 0.0d | 8 byte | Ilimitado | double d1 = 12.3 |
Se não se colocar a privacidade antes do (tipo), por default a variável ficará public
int n1 = 20;
int n1 = 20, n2 = 30;
Quando definimos um objeto num programa orientado a objetos, implementamos todo o comportamento desse objeto em um ou mais métodos.
[modificador] tipo_retorno identificador ([argumentos])
[modificador] tipo_retorno identificador ([argumentos]){
//Corpo do método
}
Pode ser:
void.return é utilizado para passar o valor requerido de volta para quem chamou o método.Quando este comando é encontrado, o método termina imediatamente a sua execução.
-> Quando é passado na chamada do método, uma cópia deste valor é criada e atribuída ao argumento do método. Se o método alterar este valor, só será afectada nesse método.
-> Aqui, é passada uma referência ao objeto original, ao invés de uma cópia do objeto. Qualquer alteração, afetará o objeto original.
public static void main(String[] args)
Uma classe que não possui um método main não pode ser “executada” pois não representa um programa em Java. Ela será sim, utilizada como classe utilitária para a construção de outras classes ou mesmo de um programa.
<modificador de acesso> class <nome da classe> {
<Declaração das Variáveis de Instância (Atributos)>
<Declaração de Métodos>
public static void main( String args[] ){
//corpo principal do programa
}
}
-> Caso não tenha argumentos, é necessário colocar os parênteses vazios tanto na definição como na chamada do método.
-> Assinatura do método: o nome do método acrescido dos seus parâmetros.
-> Cada argumento deve ser declarado especificando o tipo e o nome.
-> Caso seja mais que um argumento, cada declaração deve estar separada por vírgula.
classPalavra reservada que é usada para declarar um classe em java.
publicPalavra reservada que é um modificador de acesso que representa visibilidade. Significa que é visível para todos.
staticÉ uma palavra reservada. Se nós declararmos algum método como static, é conhecido como método estático.
Não é necessário criar um objeto para invocar o método estático. Por isso, economiza memória.
voidÉ um tipo de retorno de método. Significa que não retorna nenhum valor.
mainRepresenta o ponto de início do programa.
String args[]É usado para argumento de linha de comando.
System.out.println()É usada imprimir declarações.
-> System é uma class
-> out é o objeto da classe PrintStream
-> print() é o método da classe PrintStream
-> Primitivos
-> Não primitivos
| Construtor | Descrição |
|---|---|
JPanel() |
Constrói um painel |
JPanel(LayoutManager layout) |
Constrói um painel associado a um determinado gestor de layout |
import javax.swing.*;
public class UsaJPanel{
public static void main(String[] args){
JFrame janela = new JFrame();
janela.setTitle = new JFrame();
janela.setTitle("JPanel");
janela.setSize(350, 150);
janela.setLocation(50,50);
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel painel = new JPanel();
janela.add(painel);
janela.setVisible(true);
JLabel rotulo = new JLabel("Escreve aqui o teu nome: ", SwingConstants.CENTER)
}
}
package com.example;
import javax.swing.*;
import java.awt.*;
public class QuintaInterfaceGrafica {
// Para aparecer no meio do ecra
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
int h = (int)screen.getHeight();
int w = (int)screen.getWidth();
int jH = 150;
int jW = 350;
// -------------------------------------------
JFrame window = new JFrame("Quinta Interface Gráfica");
JLabel l1 = new JLabel("Nome:");
JLabel l2 = new JLabel("Hobbies:");
JTextField text = new JTextField(10);
JCheckBox c1 = new JCheckBox("Ler"), c2 = new JCheckBox("Escrever"), c3 = new JCheckBox("Fotografia"), c4 = new JCheckBox("Filmar");
JButton button = new JButton("SUBMETER");
JPanel panel = new JPanel();
public QuintaInterfaceGrafica() {
// -------------------------------------------
window.setSize(jW, jH);
window.setLocation(w/2-jW/2, h/2-jH/2);
// -------------------------------------------
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setLayout(new GridLayout(3, 2));
panel.setLayout(new GridLayout(2, 2));
panel.add(c1);
panel.add(c2);
panel.add(c3);
panel.add(c4);
window.add(l1);
window.add(text);
window.add(l2);
window.add(panel);
window.add(button);
window.setVisible(true);
}
public static void main(String[] args) {
new QuintaInterfaceGrafica();
}
}
| Construtor | Descrição |
|---|---|
JFrame() |
Constrói janela sem título |
JFrame(StringTítulo) |
Constrói uma janela com o título indicado no parâmetro |
import javax.swing.*;
public static void main(String[] args){
JFrame janela = new JFrame();
janela.setTitle("jFrame");
janela.setSize(350, 150);
janela.setLocation(50,50); //Coordenadas da localização da janela
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //Quando a janela é fechada a aplicação também
janela.setVisible(true);
}
| Construtor | Descrição |
|---|---|
JLable() |
Constrói uma label sem título |
JLable(String Texto) |
Constrói uma label com o texto indicado no parâmetro |
JLable(String texto, int alinhamentoHorizontal |
Constrói uma label com o texto e alinhamentos indicados |
JLable(Icon icone) |
Constrói uma label com a imagem indicada no parâmetro |
JLable(String texto, Icon icone, alinhamentoHorizontal) |
Constrói uma label com texto e imagem com o alinhamento indicado |
Tipos de alinhamento da label (alinhamentoHorizontal):
Constantes (definidas na Swing Constantes)
0 |
CENTER |
2 |
LEFT |
4 |
RIGHT |
10 |
LEADING |
11 |
TRAILING |
public class UsaJLabel{
public static void main(String[] args){
JFrame janela = new JFrame();
janela.setTitle("JLabel");
janela.setSize(350,150);
janela.setLocation(50,50);
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel rotulo = new JLabel("Escreva aqui o seu nome: ");
janela.add(rotulo);
janela.setVisible(true);
}
}
| Construtor | Descrição |
|---|---|
JTextField() |
Constrói um campo de texto |
JTextField(int colunas) |
Constrói um campo de texto com o nº de colunas indicado |
JTextField(String texto) |
Constrói um campo de texto com o texto indicado |
JTextField(String texto, int colunas |
Constrói um campo de texto com o texto e as colunas indicadas. As colunas indicam a largura do campo |
import java.awt.FlowLayout;
public class UsaJTextField{
public static void main(String[] args){
JFrame janela = new JFrame();
janela.setTitle("JTextField");
janela.setSize(350,150);
janela.setLocation(50,50);
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
janela.setLayout(new FlowLayout());
//Como a janela (JFrame) só acerta um componente de cada vez necessitamos aplicar um gestor de layout para adicionar o rótulo e a caixa de texto.
JLabel rotulo = new JLabel("Escreva aqui o seu nome: ");
JTextField caixaTexto = new JTextField(10);
janela.add(rotulo);
janela.add(caixaTexto);
janela.setVisible(true);
}
}
| Construtor | Descrição |
|---|---|
JTextArea() |
Constrói uma área de texto com dimensão 0 |
JTextArea(String texto) |
Constrói uma área de texto com o texto indicado no parâmetro |
JTextArea(int linhas, int colunas) |
Constrói uma área de texto com o nº de linhas e colunas nos parâmetros |
JTextArea(String texto, int linhas, int colunas |
Constrói uma área de textp com o nº de linhas, colunas e texto indicado no parâmetro |
import javax.Swing.*;
import java.awt.*;
public class UsaTextoArea{
public static void main(String[] args){
JFrame janela = new JFrame();
janela.setTitle("JTextArea");
janela.setSize(350, 150);
janela.setLocation(50, 50);
janela.setDefaultClose(JFrame.EXIT_ON_CLOSE);
janela.setLayout(new FlowLayout());
JLabel rotulo = new JLabel("Observações: ");
JTextArea areaTexto = new JTextArea();
areaTexto.setLineWrap(true); //Passar para baixo quando chega ao limite
areaTexto.setWrapStyleWord(true); //Não deixa fazer quebra de linha a meio de uma palavra
JScrollPane areaRolamento = new JScrollPane(areaTexto);
areaRolamento.setPreferredSize(new Dimensions(325, 80));
janela.add(rotulo);
janela.add(areaRolamento);
janela.setVisible(true);
}
}
| Construtor | Descrição |
|---|---|
JButton() |
Constrói um botão sem texto |
JButton(String texto) |
Constrói um botão com o texto no parâmetro |
JButton(String texto, icon icone |
Constrói um botão com o texto e a imagem indicada no parâmetro |
JButton(icon icone) |
Constrói um botão com uma imagem indicada no parâmetro |
public class UsaButton{
public static void main(String[] args){
JFrame janela = new JFrame();
janela.setTitle("JButton");
janela.setSize(310,150);
janela.setLocation(50,0);
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton botao = new JButton("OK");
janela.add(botao);
janela.setVisible(true);
}
}
| Construtor | Descrição |
|---|---|
JComboBox |
Constrói uma caixa de seleção vazia |
JComboBox(Objeto[] itens) |
Constrói uma caixa de seleção com itens contidos no array indicado no parâmetro |
JComboBox(Vetor<?> itens) |
Constrói uma caixa de seleção com itens contidos na coleção do tipo vetor indicado no parâmetro |
JComboBox(ComboBoxModel cbm |
Constrói uma caixa de seleção que utiliza o modelo passado como parâmetro. Utilizado para, por exemplo, listar os dados de um campo de uma base de dados |
public class UsaComboBox{
public static void main(String[] args){
JFrame janela = new JFrame();
janela.setTitle("JComboBox");
janela.setSize(320,150);
janela.setLocation(50, 50);
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
janela.setLayout(new FlowLayout());
JLabel rotulo = new JLabel ("Selecione uma cor: ");
JComboBox caixas = new JComboBox();
caixas.addItem1("Branco");
caixas.addItem2("Preto");
caixas.addItem3("Amarelo");
janela.add(rotulo);
janela.add(caixas);
janela.setVisible(true);
}
}
| Construtor | Descrição |
|---|---|
JCheckBox() |
Constrói uma caixa de opção sem qualquer texto ou imagem |
JCheckBox(String texto) |
Constrói uma caixa de opção com o texto indicado no parâmetro |
JCheckBox(String texto, boolean estado) |
Constrói uma caixa de opção associada ao texto e com o estado indicado no parâmetro. Se true está selecionado, se false não está selecionado. |
JCheckBox(Icon icone, boolean estado) |
|
JCheckBox(String texto, Icon icone) |
|
JCheckBox(String texto, Icon icone, boolean estado) |
public class UsaJCheckBox{
public static void main(String[] args){
JFrame j = new JFrame();
j.setTitle("JCkeckBox");
j.setSize(350, 16);
j.setLocation(50,50);
j.setDefaultCoseOperation(JFrame.EXIT_ON_CLOSE);
j.setLayout(new FlowLayout());
JCheckBox caixaV1 = new JCheckBox("Branco");
JCheckBox caixaV2 = new JCheckBox("Preto");
JCheckBox caixaV3 = new JCheckBox("Amarelo");
j.add(caixaV1);
j.add(caixaV2);
j.add(caixaV3);
j.setVisible(true);
}
}
| construtor | descrição |
|---|---|
JRadioButton() |
Constrói um botão de rádio sem qualquer texto ou imagem associados |
JRadioButton(String texto) |
Constrói um botão de rádio associado ao texto indicado no parâmetro |
JRadioButton(Icon icon) |
Constrói um botão de rádio associado à imagem indicada no parâmetro |
JRadioButton(String texto, boolean estado) |
Constrói um botão de rádio associado ao texto e com o estado indicado no parâmetro. Se o estado for "true", o botão está inicialmente selecionado, se for "false" não está |
JRadioButton(String texto, Icon icon) |
|
JRadioButton(String texto, Icon icon, boolean estado) |
public class UsaRadioButton {
public static void main (String[] args) {
JFrame janela = new JFrame();
janela.setTile("JRadioButton");
janela.setSize(350, 150);
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLICK);
janela.setLayout(new FlowLayout);
JRadioButton botaoRadio1 = new JRadioButton("Branco");
JRadioButton botaoRadio2 = new JRadioButton("Preto");
JRadioButton botaoRadio3 = new JRadioButton("Amarelo");
janela.add(botaoRadio1);
janela.add(botaoRadio2);
janela.add(botaoRadio3);
janela.setVisible(true);
}
}
| construtor | descrição |
|---|---|
JTable() |
Constrói uma tabela vazia |
JTable(int linhas, int colunas) |
Constrói uma tabela vazia com o número de linhas e colunas indicada nos parâmetros |
JTable(Object[][] dados, Object[][] titulos) |
Constrói uma tabela com os dados e os títulos das colunas indicados nos parâmetros |
JTable(vetor dados, vetor titulos) |
Constrói uma tabela com os dados e os títulos das colunas indicados nos parâmetros |
JTable(TableModel tm) |
Constrói de acordo com o modelo indicado no parâmetro utilizado para, por exemplo, listar dados de uma base de dados |
public class UsaTable {
public static void main (String[] args) {
Object[][] produtos = {
{new Integer(1), "lápis", "Lápis & Co."},
{new Integer(2), "caneta", "Canetas & Canetas"},
{new Integer(3), "caderno", "Cadernos e Outros"}
};
String[] titulos = {"Código", "Produto", "Fornecedor"};
JFrame janela = new JFrame();
janela.setTitle("JTable");
janela.setSize(350, 150);
janela.setLocation(50, 50);
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JTable tabela = new JTable(produtos, titulos);
JScrollPane areaRolamento = new JScrollPane(tabela);
tabela.setPreferredScrollableViewportSize(new Dimension(325, 20));
janela.add(areaRolamento);
janela.setVisible(true);
}
}
public class UsaMenus {
public static void main (String[] args) {
JFrame janela = new JFrame();
janela.setTitle("JTable");
janela.setSize(350, 150);
janela.setLocation(50, 50);
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JMenuBar barraMenu = new JMenuBar();
JMenu menuContentores = new JMenu("Contentores");
JMenuItem jmiJFrame = new JMenuItem("JFrame");
JMenuItem jmiJPanel = new JMenuItem("JPanel");
JMenu menuCaixasTexto = new JMenu("Caixas texto");
JMenuItem jmiJTextField = new JMenuItem("JTextField");
JMenuItem jmiJTextArea = new JMenuItem("JTextArea");
JMenu menuBotoes = new JMenu("Botões");
JMenuItem jmiJButton = new JMenuItem("JButton");
JMenuItem jmiJCheckBox = new JMenuItem("JCheckBox");
JMenuItem jmiJRadioButton = new JMenuItem("JRadioButton");
JMenu menuOutrosComponentes = new JMenu("Outros");
JMenuItem jmiJLabel = new JMenuItem("JLabel");
JMenuItem jmiJComboBox = new JMenuItem("JComboBox");
JMenuItem jmiJTable = new JMenuItem("JTable");
janela.setJMenuBar(barraMenu);
barraMenu.add(menuContentores);
menuContentores.add(jmiJFrame);
menuContentores.add(jmiJPanel);
barraMenu.add(menuCaixasTexto);
menuCaixasTexto.add(jmiJTextField);
menuCaixasTexto.add(jmiJTextArea);
barraMenu.add(menuBotoes);
menuBotoes.add(jmiJButton);
menuBotoes.add(jmiJCheckBox);
menuBotoes.add(jmiJRadioButton);
barraMenu.add(menuOutrosComponentes);
menuOutrosComponentes.add(jmiJLabel);
menuOutrosComponentes.add(jmiJComboBox);
menuOutrosComponentes.add(jmiJTable);
janela.setVisible(true);
}
}
Mostra uma mensagem e espera até que o utilizador pressione o botão "Ok".
public class UsaJOPSShowMessageDialog{
public static void main (String[] args) {
JOptionPane.showMessageDialog(null, "Obrigado por ter utilizado este programa");
}
}
Exibe uma questão e aguarda até que o utilizador responda pressionando um dos botões "YES", "NO" ou "CANCEL".
public class UsaJOPShowConfirmDialog {
public static void main (String[] args) {
int opcaoEscolhida = JOptionPane.showConfirmDialog(null, "Deseja guardar as alterações?");
System.out.println("A opção escolhida foi " + opcaoEscolhida);
}
}
Apresenta uma caixa de texto na qual o utilizador poderá inserir informação e confirmar a mesma através do botão "OK" ou cancelá-la através do botão "CANCEL"
public class usaJOPShowInputDialog {
public static void main (String[] args) {
String nome = JOptionPane.showInputDialog("Escreva o seu nome");
System.out.print("O nome inserido foi: " + nome);
}
}
Possibilita a introdução de elementos definidos pelo programador.
public class usaJOPShowOptionDialog {
public static void main (String[] args) {
String tiposLigacao = {"wireless", "adsl", "fibra ótica"};
int opcao = JOptionPane.showOptionDialog(null, "Escolha uma das ligações: ", "Tipos de ligação", JOptionPane.DEFAULT_OPTION, JOptionPane.QUESTION_MESSAGE, null, tiposLigacao, "wireless");
System.out.print("A opção escolhida foi " + opcao);
}
}
| construtor | descrição |
|---|---|
FlowLayout() |
Constrói um FlowLyaout com alinhamento ao centro e um espaçamento horizontal e vertical, entre os componentes, de 5 unidades |
FlowLayout(int alinhamento) |
Constrói um FlowLayout com o alinhamento especificado no parâmetro e um espaçamento horizontal e vertical, entre os componentes, de 5 unidades |
FlowLayout(int alinhamento, int hgap, int vgap) |
Constrói um FlowLayout com o alinhamento especificado no parâmetro e espaçamento horizontais e verticais, entre os componentes, especificados nos parâmetros |
LEFT(0)
CENTER(1)
RIGHT(2)
LEADING(3)
public class UtilizaGridLayout {
public static void main (String[] args) {
JFrame janela = new JFrame();
janela.setTitle("FlowLayout");
janela.setSize(350, 150);
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
janela.setLayout(new FlowLayout());
JLabel rotulo = new JLabel ("Escreva o seu nome: ");
JTextField caixaTexto = new JTextField(10);
JButton botao = new JButton("OK");
janela.add(rotulo);
janela.add(caixaTexto);
janela.add(botao);
janela.setVisible(true);
}
}
| construtor | descrição |
|---|---|
| GridLayout() | Constrói uma GridLayout com uma linha e uma coluna |
| GridLayout(int linhas, int colunas) | Constrói uma GridLayout com o número de linhas e colunas especificado nos parâmetros |
| GridLayout(int linhas, int colunas, int hgap, int vgap) | Constrói uma GridLayout com o número de linhas e colunas, e espaçamento verticais e horizontais especificado nos parâmetros |
public class UtilizaGridLayout {
public static void main (String[] args) {
JFrame janela = new JFrame();
janela.setTitle("GridLayout");
janela.setSize(350, 150);
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
janela.setLayout(new FlowLayout());
JLabel rotulo1 = new JLabel ("Escreva o nome de um fruto: ");
JTextField caixaTexto = new JTextField(10);
JLabel rotulo2 = new JLabel ("Selecione uma bebida: ");
JComboBox caixaCombinacao = new JComboBox();
caixaCombinacao.add("Água");
caixaCombinacao.add("Vinho");
JButton botao = new JButton("OK");
janela.add(rotulo1);
janela.add(caixaTexto);
janela.add(rotulo2);
janela.add(caixaCombinacao);
janela.add(botao);
janela.setVisible(true);
}
}
| construtor | descrição |
|---|---|
| BorderLayout() | Constrói um BorderLayout sem qualquer espaçamento entre os componentes |
| BorderLayout(int hgap, int vgap) | Constrói um BorderLayout com o espaçamento horizontal e vertical entre os componentes especificados nos parâmetros |
public class UtilizaBorderLayout {
public static void main (String[] args) {
JFrame janela = new JFrame();
janela.setTitle("BorderLayout");
janela.setSize(350, 150);
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
janela.setLayout(new BorderLayout());
JButton botaoNorte = new JButton("Norte");
JButton botaoSul = new JButton("Sul");
JButton botaoOeste = new JButton("Oeste");
JButton botaoEste = new JButton("Este");
JButton botaoCentro = new JButton("Centro");
janela.add("North", botaoNorte);
janela.add("South", botaoSul);
janela.add("West", botaoOeste);
janela.add("East", botaoEste);
janela.add("Center", botaoCentro);
janela.setVisible(true);
}
}
O construtor BoxLayout(container contentor, int eixo) constrói um BoxLayout associado ao contentor e com a disposição dos componentes especificada nos parâmetros.
O parâmetro eixo poderá ter um dos valores definidos nas constantes do tipo inteiro:
X_AXIS(0)
Y_AXIS(1)
Estas constantes estão definidas na classe BoxLayout.
public class UtilizaBoxLayout {
public static void main (String[] args) {
JFrame janela = new JFrame();
janela.setTitle("BoxLayout");
janela.setSize(350, 150);
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel painel = new JPanel();
painel.setLayout(new BoxLayout(painel, BoxLayout.Y_AXIS));
for (int i = 0; i < 5; i++) {
painel.add(new JButton("Botão " + (i+1)));
}
janela.add(painel);
janela.setVisible(true);
}
}
java.awt.event e javax.swing.eventjava.awt.event, javax.swing.events e java.beans.ActionEvent.ActionListener.| Evento (classe) | Descrição | Listerner (interface) |
|---|---|---|
ActionEvent |
Eventos de ação como um clique do rato sobre um botão ou o pressionar da tecla [Enter] numa caixa de texto. | ActionListener |
ItemEvent |
Eventos gerados quando um item é selecionado numa caixa de combinação, numa caixa de seleção ou num botão de rádio, por exmeplo. | ItemListener |
KeyEvent |
Eventos originados pela entrada de informação a partir do teclado. | KeyListener |
MouseEvent |
Eventos gerados pelo rato, quando, por ex., é clicado, pressionado, libertado, arrastado e movido. | MouseListener |
FocusEvent |
Eventos de foco gerados quando um componente recebe ou perde o foco. | FocusListener |
WindowEvent |
Eventos gerados pelas janelas quando etas são abertas, fechadas, maximizadas, minimizadas, etc. | WindowListener |
| Listener (interface) | Métodos |
|---|---|
| ActionListener | actionPerformed(ActionEvent ev*) |
| ItemListener | itemStateChanged(ItemEvent ev) |
| KeyListener | keyPressed(KeyEvent ev) keyReleased(KeyEvent ev) keyTyped(KeyEvent ev) |
| MouseListener | mouseEntered(MouseEvent ev) mouseExited(MouseEvent ev) mouseReleased(MouseEvent ev) mousePressed(MouseEvent ev) mouseClicked(MouseEvent ev) |
| FocusListener | focusGained(FocusEvent ev) focusLost(FocusEvent ev) |
| WindowListener | windowActivated(WindowEvent ev) windowDeactivated(WindowEvent ev) windowIconified(WindowEvent ev) windowDeiconified(WindowEvent ev) windowOpened(WindowEvent ev) windowClosed(WindowEvent ev) windowClosing(WindowEvent ev) |
Costuma ser:
eevevt
public class ExemploActionEvent1 implements ActionListener {
JFrame janela = new JFrame("ExemploActionEvent");
JPanel painel = new JPanel();
JButton botao1 = new JButton("Botão 1");
JButton botao2 = new JButton("Botão 2");
JLabel rotulo = new JLabel();
public ExemploActionEvent1() {
janela.setSize(350,150);
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
janela.setVisible(true);
painel.add(botao1);
painel.add(botao2);
painel.add(rotulo);
janela.add(painel);
botao1.addActionListener(this); // Registo do Listener
botao2.addActionListener(this); // Registo do Listener
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == botao1) {
rotulo.setVisible(true);
rotulo.setText("Carregou no Botão 1!");
}
if (e.getSource() == botao2) {
rotulo.setVisible(false);
JOptionPane.showMessageDialog(janela, "Carregou no Botão 2!");
}
}
public static void main (String[] args) {
new ExemploActionEvent1();
}
}
public class ExemploActionEvent2{
JFrame janela = new JFrame("ExemploActionEvent");
JPanel painel = new JPanel();
JButton botao1 = new JButton("Botão 1");
JButton botao2 = new JButton("Botão 2");
JLabel rotulo = new JLabel();
public ExemploActionEvent2() {
janela.setSize(350,150);
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
janela.setVisible(true);
painel.add(botao1);
painel.add(botao2);
painel.add(rotulo);
janela.add(painel);
botao1.addActionListener(new ProcessaBotoes()); // Registo do Listener
botao2.addActionListener(new ProcessaBotoes()); // Registo do Listener
}
private class ProcessaBotoes implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == botao1) {
rotulo.setVisible(true);
rotulo.setText("Carregou no Botão 1 !");
}
if (e.getSource() == botao2) {
rotulo.setVisible(true);
JOptionPane.showMessageDialog(janela, "Carregou no Botão 2 !");
}
}
}
public static void main (String[] args) {
new ExemploActionEvent2();
}
}
public class ExAula extends JFrame{
JPanel painel = new JPanel();
JButton botao1 = new JButton("Botão 1");
JButton botao2 = new JButton("Botão 2");
JLabel rotulo = new JLabel();
public ExAula() {
setSize(300,150);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
painel.add(botao1);
painel.add(botao2);
painel.add(rotulo);
add(painel);
botao1.addActionListener(new ProcessaBotoes());
botao2.addActionListener(new ProcessaBotoes());
}
public static void main(String[] args){
new ExAula();
}
private class ProcessaBotoes implements ActionListener{
public void actionPerformed (ActionEvent e){
if(e.getSource() == botao1){
rotulo.setVisible(true);
rotulo.setText("Carregou no Botão 1 !");
}
if(e.getSource() == botao2){
rotulo.setVisible(false);
JOptionPane.showMessageDialog(null, "Carregou no Botão 2 !");
}
}
}
}
1. class A{
2. static public void main(String... args){
3. System.out.println("hello java");
4. }
5. };
OUTPUT
hello java
package com.mycompany.first;
public class somaDoisNumeros {
public static void main(String[] args){
int a = 10;
int b = 10;
int c = a + b;
System.out.println(c);
System.out.println("CLASSE SOMA DOIS NUMEROS");
}
}
OUTPUT
20
package com.mycompany.first;
public class first {
public static void main(String[] args){
int a = 10;
float f = a;
System.out.println(a);
System.out.println(f);
}
}
OUTPUT
10
10.0
package com.mycompany.first;
public class first {
public static void main(String[] args) {
float f = 10.5f;
int a = (int) f;
System.out.println(f);
System.out.println(a);
}
}
OUTPUT
10.5
10
package com.mycompany.first;
public class first {
public static void main(String[] args) {
int a = 130;
byte b = (byte)a;
System.out.println(a);
System.out.println(b);
}
}
OUTPUT
130
-126
package com.mycompany.first;
public class first {
public static void main(String[] args) {
byte a = 10;
byte b = 10;
byte c = (byte)(a+b);
//byte c = a + b; //Aqui, o resultado será por default int
System.out.println(c);
}
}
OUTPUT
20
package com.darque.graphicaula;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
/**
*
* @author Darque
*/
public class MaquinaSomarSubtrair extends JFrame{
JLabel labelValor1 = new JLabel ("Primeiro número");
JTextField textValor1 = new JTextField(5);
JLabel labelValor2 = new JLabel ("Segundo número");
JTextField textValor2 = new JTextField(5);
JButton botaoSomar = new JButton("Somar");
JButton botaoSubtrair = new JButton("Subtrair");
JLabel labelResultado = new JLabel ("Resultado");
JTextField textResultado = new JTextField(5);
//Construtor
private MaquinaSomarSubtrair() {
setTitle("Máquina de Somar e Subtrair");
setSize(300,150);
setLocation(50, 50);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new GridLayout(4,2));
setVisible(true);
add(labelValor1);
add(textValor1);
add(labelValor2);
add(textValor2);
add(botaoSomar);
add(botaoSubtrair);
add(labelResultado);
textResultado.setEditable(false);
add(textResultado);
botaoSomar.addActionListener(new EventoBotao());
botaoSubtrair.addActionListener(new EventoBotao());
}
public static void main(String[] args) {
new MaquinaSomarSubtrair();
}
//Classe interna que implementa os métodos da interface ActionListener
private class EventoBotao implements ActionListener {
public void actionPerformed (ActionEvent e){
double resultado = 0;
String resultadoString = "";
if(e.getSource() == botaoSomar){
resultado = Double.parseDouble(textValor1.getText()) + Double.parseDouble(textValor2.getText());
}
else{
resultado = Double.parseDouble(textValor1.getText()) - Double.parseDouble(textValor2.getText());
}
resultadoString = Double.toString(resultado);
textResultado.setText(resultadoString);
}
}
}
package com.darque.graphicaula;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
/**
*
* @author Darque
*/
public class ConversorTemperatura extends JFrame{
JLabel labelTipoConversao = new JLabel("Tipo de conversão: ");
JRadioButton CF = new JRadioButton("ºC-ºF");
JRadioButton FC = new JRadioButton("ºF-ºC");
ButtonGroup grupoBotoes = new ButtonGroup();
JPanel painel = new JPanel();
JLabel labelValorAConverter = new JLabel("Valor a converter: ");
JTextField textValor = new JTextField(5);
JButton converter = new JButton("CONVERTER");
//Construtor
private ConversorTemperatura(){
setTitle("Conversor Temperatura");
setSize(280, 130);
setLocation(50,50);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new GridLayout(3,2,1,5));
setVisible(true);
add(labelTipoConversao);
painel.setLayout(new GridLayout(1,2));
painel.add(CF);
painel.add(FC);
add(painel);
add(labelValorAConverter);
add(textValor);
add(converter);
grupoBotoes.add(CF);
grupoBotoes.add(FC);
converter.addActionListener(new EventoBotao());
}
public static void main(String[] args) {
new ConversorTemperatura();
}
//Classe interna que implementa os métodos da interface ActionListener
private class EventoBotao implements ActionListener {
public void actionPerformed (ActionEvent e) {
double resultado;
String mensagem = "";
if(CF.isSelected()){
resultado = Double.parseDouble(textValor.getText()) * 9 / 5 + 32;
mensagem = Double.toString(resultado) + "ºF";
}
else if(FC.isSelected()){
resultado = Double.parseDouble(textValor.getText()) - 32 * 5 / 9;
mensagem = Double.toString(resultado) + "ºC";
}
else{
mensagem = "Selecione um tipo de conversão!";
}
JOptionPane.showMessageDialog(null, mensagem);
}
}
}
package com.darque.graphicaula;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DecimalFormat;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.ButtonGroup;
import javax.swing.JOptionPane;
/**
*
* @author Darque
*/
public class ConversorComprimento extends JFrame implements ActionListener{
JLabel labelValorAConverter = new JLabel("Valor a converter: ");
JTextField textValor = new JTextField(10);
JRadioButton mtMi = new JRadioButton("metros - milhas");
JRadioButton miMt = new JRadioButton("milhas - metros");
ButtonGroup group = new ButtonGroup();
public ConversorComprimento(){
setSize(280,100);
setLocation(50,50);
setTitle("Conversor Comprimento");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new FlowLayout());
group.add(mtMi);
group.add(miMt);
add(labelValorAConverter);
add(textValor);
add(mtMi);
add(miMt);
setVisible(true);
mtMi.addActionListener(this);
miMt.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
String stringValue = textValor.getText();
double valor = Float.parseFloat(stringValue);
DecimalFormat formato = new DecimalFormat("###.###");
if(mtMi.isSelected()){ //metros - milhas
valor = valor*0.000621371;
//stringValue = String.valueOf(valor); // Sem o Decimal Format
stringValue = formato.format(valor) + " milhas";
//textValor.setText(stringValue); // Para adicionar o resultado ao text field
JOptionPane.showMessageDialog(null, stringValue);
}
else if (miMt.isSelected()) { //milhas - metros
valor = valor*1609.34;
//stringValue = String.valueOf(valor); // Sem o Decimal Format
stringValue = formato.format(valor) + " metros";
//textValor.setText(stringValue); // Para adicionar o resultado ao text field
JOptionPane.showMessageDialog(null, stringValue);
}
}
public static void main(String[] args) {
new ConversorComprimento();
}
}
package com.darque.graphicaula;
import java.awt.FlowLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.text.DecimalFormat;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.ButtonGroup;
import javax.swing.JOptionPane;
/**
*
* @author Darque
*/
public class ConversorComprimento extends JFrame implements ItemListener {
JLabel labelValorAConverter = new JLabel("Valor a converter: ");
JTextField textValor = new JTextField(10);
JRadioButton mtMi = new JRadioButton("metros - milhas");
JRadioButton miMt = new JRadioButton("milhas - metros");
ButtonGroup group = new ButtonGroup();
DecimalFormat formato = new DecimalFormat("###.##");
public ConversorComprimento(){
setSize(280,100);
setLocation(50,50);
setTitle("Conversor Comprimento");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new FlowLayout());
group.add(mtMi);
group.add(miMt);
add(labelValorAConverter);
add(textValor);
add(mtMi);
add(miMt);
setVisible(true);
miMt.addItemListener(this);
mtMi.addItemListener(this);
}
public void itemStateChanged(ItemEvent e){
String valorString;
double valor = Double.parseDouble(textValor.getText());
if(e.getSource() == mtMi || e.getSource() == miMt){
if (mtMi.isSelected()) {
valor = valor * 0.000621371;
valorString = formato.format(valor) + " miles";
JOptionPane.showMessageDialog(null, valorString);
}
else if(miMt.isSelected()) {
valor = valor * 1609.34;
valorString = formato.format(valor) + " meters";
JOptionPane.showMessageDialog(null, valorString);
}
}
}
public static void main(String[] args) {
new ConversorComprimento();
}
}
package com.darque.graphicaula;
import java.awt.FlowLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.text.DecimalFormat;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.ButtonGroup;
import javax.swing.JOptionPane;
/**
*
* @author Darque
*/
public class ConversorComprimento extends JFrame {
JLabel labelValorAConverter = new JLabel("Valor a converter: ");
JTextField textValor = new JTextField(10);
JRadioButton mtMi = new JRadioButton("metros - milhas");
JRadioButton miMt = new JRadioButton("milhas - metros");
ButtonGroup group = new ButtonGroup();
DecimalFormat formato = new DecimalFormat("###.##");
public ConversorComprimento(){
setSize(280,100);
setLocation(50,50);
setTitle("Conversor Comprimento");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new FlowLayout());
group.add(mtMi);
group.add(miMt);
add(labelValorAConverter);
add(textValor);
add(mtMi);
add(miMt);
setVisible(true);
miMt.addItemListener(new EventButton());
mtMi.addItemListener(new EventButton());
}
public static void main(String[] args) {
new ConversorComprimento();
}
private class EventButton implements ItemListener{
public void itemStateChanged(ItemEvent e){
String valorString;
double valor = Double.parseDouble(textValor.getText());
if (e.getSource() == mtMi) {
if(mtMi.isSelected()){
valor = valor * 0.000621371;
valorString = formato.format(valor) + " miles";
JOptionPane.showMessageDialog(null, valorString);
}
}
else if(e.getSource() == miMt) {
if(miMt.isSelected()){
valor = valor * 1609.34;
valorString = formato.format(valor) + " meters";
JOptionPane.showMessageDialog(null, valorString);
}
}
}
}
}
package com.darque.graphicaula;
import java.awt.GridLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.text.DecimalFormat;
import javax.swing.*;
/**
*
* @author Darque
*/
public class ConversorPeso extends JFrame implements ItemListener{
JLabel label1 = new JLabel("Valor a converter");
JTextField textValor = new JTextField(5);
JLabel label2 = new JLabel("Tipo de conversão");
String[] vetor = {"Gramas - Onças", "Onças - Gramas"};
JComboBox comboBox = new JComboBox(vetor);
JLabel label3 = new JLabel("Resultado");
JLabel textResultado = new JLabel();
DecimalFormat formato = new DecimalFormat("#.###");
public ConversorPeso(){
setTitle("Conversor Peso");
setLayout(new GridLayout(3, 2, 1, 5));
setSize(280, 100);
setLocation(200,200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
add(label1);
add(textValor);
add(label2);
add(comboBox);
add(label3);
add(textResultado);
setVisible(true);
comboBox.addItemListener(this);
}
public void itemStateChanged(ItemEvent e){
String valorString = (String) comboBox.getSelectedItem();
double valor = Double.parseDouble(textValor.getText());
if (valorString.equals(vetor[0])) {
valor = valor * 0.0353;
valorString = formato.format(valor);
textResultado.setText(valorString);
}
else if (valorString.equals(vetor[1])) {
valor = valor / 0.0353;
valorString = formato.format(valor);
textResultado.setText(valorString);
}
}
public static void main(String[] args) {
new ConversorPeso();
}
}
package com.darque.graphicaula;
import java.awt.*;
import java.awt.event.KeyListener;
import java.awt.event.KeyEvent;
import java.awt.event.FocusListener;
import java.awt.event.FocusEvent;
import java.text.DecimalFormat;
import javax.swing.*;
/**
*
* @author Darque
*/
public class ConversorCapacidade extends JFrame implements KeyListener, FocusListener {
JLabel label1 = new JLabel("litros - galões");
JTextField text1 = new JTextField(19);
JLabel label2 = new JLabel("galões - litros");
JTextField text2 = new JTextField(19);
JLabel label3 = new JLabel("Introduza o nº na caixa indicada e pressione ENTER");
DecimalFormat formato = new DecimalFormat("##.##");
double valor;
String textString;
public ConversorCapacidade(){
setTitle("Conversor Capacidade");
setSize(320,120);
setLocation(300,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new FlowLayout(0));
add(label1);
add(text1);
add(label2);
add(text2);
add(label3);
setVisible(true);
text1.addKeyListener(this);
text2.addKeyListener(this);
text1.addFocusListener(this);
text2.addFocusListener(this);
}
public void keyPressed (KeyEvent e){
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
if (e.getSource() == text1) {
valor = Double.parseDouble(text1.getText());
valor = valor * 0.22;
textString = formato.format(valor);
JOptionPane.showMessageDialog(null, "Resultado: " + textString + " galões", "Litros - Galoes", JOptionPane.PLAIN_MESSAGE);
}
else if (e.getSource() == text2) {
valor = Double.parseDouble(text2.getText());
valor = valor / 0.22;
textString = formato.format(valor);
JOptionPane.showMessageDialog(null, "Resultado: " + textString + " litros", "Galões - Litros", JOptionPane.PLAIN_MESSAGE);
}
}
}
public void focusGained (FocusEvent e){
if(e.getSource() == text1){
text2.setText("");
}
else if (e.getSource() == text2) {
text1.setText("");
}
}
public void keyReleased(KeyEvent e){}
public void keyTyped(KeyEvent e){}
public void focusLost(FocusEvent e){}
public static void main(String[] args) {
new ConversorCapacidade();
}
}
package com.darque.graphicaula;
import java.awt.FlowLayout;
import java.awt.event.*;
import java.text.DecimalFormat;
import javax.swing.*;
/**
*
* @author Darque
*/
public class CalculoCirculo extends JFrame implements MouseListener {
DecimalFormat format = new DecimalFormat("##.##");
JLabel label1 = new JLabel("Medida do raio");
JTextField textField = new JTextField(5);
JCheckBox checkArea = new JCheckBox("Área");
JCheckBox checkPerimetro = new JCheckBox("Perímetro");
ButtonGroup grupoCheck = new ButtonGroup();
JButton buttonCalcular = new JButton("Calcular");
public CalculoCirculo(){
setTitle("Círculo");
setSize(220, 150);
setLocation(300, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new FlowLayout(1));
add(label1);
add(textField);
add(checkArea);
grupoCheck.add(checkArea);
grupoCheck.add(checkPerimetro);
add(checkArea);
add(checkPerimetro);
add(buttonCalcular);
setVisible(true);
buttonCalcular.addMouseListener(this);
}
public void mouseClicked(MouseEvent e){
String textString;
double valor = Double.parseDouble(textField.getText());
if(e.getSource() == buttonCalcular){
if (checkArea.isSelected()) {
valor = Math.PI * Math.pow(valor, 2);
textString = format.format(valor);
JOptionPane.showMessageDialog(null, "Área: " + textString);
}
else if(checkPerimetro.isSelected()){
valor = 2 * Math.PI * valor;
textString = format.format(valor);
JOptionPane.showMessageDialog(null, "Perímetro: " + textString);
}
}
}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
public void mouseReleased(MouseEvent e){}
public void mousePressed(MouseEvent e){}
public static void main(String[] args) {
new CalculoCirculo();
}
}
package com.darque.graphicaula;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import javax.swing.table.*;
/**
*
* @author Darque
*/
public class MostraContactos extends JFrame implements MouseListener{
JLabel label1 = new JLabel("Contactos");
String[] cabecalho = new String[]{"Nome", "Contacto"};
DefaultTableModel model = new DefaultTableModel(null, cabecalho);
JTable table = new JTable(model);
JScrollPane scroll = new JScrollPane(table);
public MostraContactos(){
setTitle("Contacts");
setSize(370, 170);
setLocation(300,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new FlowLayout());
setVisible(true);
add(label1);
scroll.setPreferredSize(new Dimension(350,100));
TableColumnModel modelColumn = table.getColumnModel();
TableColumn column0 = modelColumn.getColumn(0);
column0.setMaxWidth(100);
TableColumn column1 = modelColumn.getColumn(1);
column1.setMaxWidth(250);
add(scroll);
try {
FileReader file = new FileReader("Contactos.txt");
BufferedReader buffer = new BufferedReader(file);
int i = 0;
String[] cells = new String[]{null, null, null};
while(buffer.ready()){
model.addRow(cells);
model.setValueAt(buffer.readLine(), i, 0);
model.setValueAt(buffer.readLine(), i, 1);
i++;
}
buffer.close();
}
catch (IOException ioe) {
System.out.println("Não foi possível ler o ficheiro!");
ioe.printStackTrace();
}
table.addMouseListener(this);
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
}
public void mouseClicked(MouseEvent e){
if(table.getSelectedRow() != -1){
JOptionPane.showMessageDialog(null, "Foi selecionada a linha " + table.getSelectedRow());
}
}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
public void mouseReleased(MouseEvent e){}
public void mousePressed(MouseEvent e){}
public static void main(String[] args) {
new MostraContactos();
}
}
import java.io.FileWriter; // Import the FileWriter class
import java.io.IOException; // Import the IOException class to handle errors
public class WriteToFile {
public static void main(String[] args) {
try {
FileWriter myWriter = new FileWriter("filename.txt");
myWriter.write("Files in Java might be tricky, but it is fun enough!");
myWriter.close();
System.out.println("Successfully wrote to the file.");
} catch (IOException e) {
System.out.println("An error occurred.");
e.printStackTrace();
}
}
}
public static void count(String x)
{
int letter=0,digit=0,spaces=0,other=0;
for(int i=0;i<x.length();i++)
{
if(Character.isLetter(x.charAt(i)))
{
letter ++;
}
else if(Character.isDigit(x.charAt(i)))
{
digit ++;
}
else if(Character.isSpaceChar(c[i]))
{
spaces ++;
}
else
{
other ++;
}
}
System.out.println(" the total letter is "+ letter);
System.out.println(" the total digits is "+ digit);
System.out.println(" the total spaces is "+ spaces);
System.out.println("other is "+ other);
package com.darque.graphicaula;
import java.awt.GridLayout;
import java.awt.event.*;
import javax.swing.*;
/**
*
* @author Darque
*/
public class UsaMenus extends JFrame implements ActionListener{
JMenuBar menuBar = new JMenuBar();
JMenu conversorTemperatura = new JMenu("Temperatura");
JMenuItem conversorTemperaturaActionEvent = new JMenuItem("Action Event");
JMenuItem conversorTemperaturaItemEvent = new JMenuItem("Item Event");
JMenu conversorPeso = new JMenu("Peso");
JMenuItem conversorPesoItemEvent = new JMenuItem("Item Event");
JMenu conversorCapacidade = new JMenu("Capacidade");
JMenuItem conversorCapacidadeKeyFocus = new JMenuItem ("Key/Focus Event");
JLabel label1 = new JLabel("BEM-VINDO AO MENU");
JLabel label2 = new JLabel("Faça a sua seleção!");
public UsaMenus(){
setTitle("Menus");
setSize(500, 200);
setLocation(300, 300);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setLayout(new GridLayout(3, 1));
setJMenuBar(menuBar);
menuBar.add(conversorTemperatura);
conversorTemperatura.add(conversorTemperaturaActionEvent);
conversorTemperatura.add(conversorTemperaturaItemEvent);
menuBar.add(conversorPeso);
conversorPeso.add(conversorPesoItemEvent);
menuBar.add(conversorCapacidade);
conversorCapacidade.add(conversorCapacidadeKeyFocus);
conversorTemperaturaActionEvent.addActionListener(this);
conversorTemperaturaItemEvent.addActionListener(this);
conversorPesoItemEvent.addActionListener(this);
conversorCapacidadeKeyFocus.addActionListener(this);
label1.setHorizontalAlignment(JLabel.CENTER);
add(label1);
label2.setHorizontalAlignment(JLabel.CENTER);
add(label2);
setVisible(true);
}
public void actionPerformed (ActionEvent e){
if(e.getSource() == conversorTemperaturaActionEvent){
ConversorTemperatura.main(null);
}
else if(e.getSource() == conversorTemperaturaItemEvent){
ConversorTemperatura.main(null);
}
else if(e.getSource() == conversorPesoItemEvent){
ConversorPeso.main(null);
}
else if(e.getSource() == conversorCapacidadeKeyFocus){
ConversorCapacidade.main(null);
}
}
public static void main(String[] args) {
new UsaMenus();
}
}
int key= KeyEvent.getKeyCode();
if((((key>=65)&&(key<=90))||((key>=97)&&(key<=122))||((key>=48)&&(key<=57)))
{
//Do action
}
List keyEvents = new ArrayList<KeyEvent>();
keyEvents.add(KeyEvent.VK_A);
keyEvents.add(KeyEvent.VK_B);
keyEvents.add(KeyEvent.VK_C);
keyEvents.add(KeyEvent.VK_D);
public void keyPressed(KeyEvent e) {
if(keyEvents.contains(e.getKeyCode())){
}
}
Que possibilita com que todos os caracteres de todas as linguagens escritas utilizadas no planeta possam ser representados em computadores.
Utilize substantivos ou frases substantivas descritivas.
Deixe maiúscula a primeira letra de cada substantivo que compõe o nome.
-> ex: MyFirstClassName
Use verbos para nome de métodos.
Faça a primeira letra do nome minúscula com cada letra inicial interna maiúscula
-> ex: getUserName()
Escolha nomes que indiquem o uso pretendido da variável.
Utilize a primeira letra do nome minúscula e a inicial das outras palavras que formam o nome maiúscula
-> ex: customerLastName
public-> O menos restritivo
-> Atributos e métodos com este modificador, podem ser acedidos por:
protected-> Atributos e métodos com este modificador, podem ser acedidos por:
private-> O mais restritivo
->Atributos e métodos com este modificador, podem ser acedidos por:
-> Atributos e métodos sem modificador, podem ser acedidos por:
É compilado por um compilador e convertido para bytecode. Este bytecode é um código independente de plataforma.
-> WORA - Write Once and Run Anywhere
Tipo dado INT em arquitetura C =/= Java
em C:
-> 32 bits -> 2 bytes de memória
-> 64 bits -> 4 bytes de memória
em Java:
-> 32 bits -> 4 bytes de memória
-> 64 bits -> 4 bytes de memória
-> Ir para a localização onde se encontra o documento
-> javac nomedocumento.java para compiilar
-> java nomedocumento.java para executar
Os parâmetros são passados para as aplicações através do vetor de strings do método main
lenghtAtravés do método length pode-se verificar o número de parâmetros passados. O acesso é feito indicando-se a posição no array, sempre iniciando em ( ).
public static void main(String[] args) {
System.out.println("O meu nome é: " + args[0] + " e tenho " + args[1] + " anos.");
System.out.println("Numero de parametros: " + args.length);
}
CMD:
java ClassName.java Nome idade
É uma especificação que fornece um ambiente de tempo de execução no qual o bytecode pode ser executado.
Isto porque não existe fisicamente.
-> Carrega código
-> Verifica código
-> Executa código
-> Fornece ambiente de tempo de execução
-> Área de memória
-> Formato de arquivo de classe
-> Conjunto de registros
-> Pilha de garbage collector
-> Relatório de erros fatais
-> Etc.
É usado para fornecer o ambiente de tempo de execução.
É a implementação da JVM.
Existe fisicamente.
É usado para desenvolver aplicações e applets (pequenos programas) Java.
Contém o JRE + ferramentas de desenvolvimento.
Contém uma JVM privada e alguns outros recursos.
Existe fisicamente.
-> Interpretador / Carregador (java)
-> Compilador (javac)
-> Arquivador (jar)
-> Gerador de documentação (Javadoc)
-> etc
Simple.java -> Código fonte java
Simple.class -> Código fonte em bytecode
O código fonte de programas Java é armazenado em arquivos com extensão .java
-> ex: Cliente.java
Quando compilamos um arquivo fonte, será gerado um arquivo com extensão .class para cada classe definida e com o mesmo nome da classe. O arquivo .class contém o bytecode gerado com a compilação.
-> ex: Cliente.class
-> Um processador virtual
-> Interpretador: Lé o fluxo do bytecode e executa as instruções
-> Compilador JIT (Just-in-time): Compila parte do código de bytes que possuem funcionalidade semelhante ao mesmo tempo, reduzindo a quantidade de tempo necessário para a compilação.